export class Action<T1, T2, T3, T4> extends Function {

}

export class Action1<T1> extends Action<T1, undefined, undefined, undefined> {

}

export class Action2<T1, T2> extends Action<T1, T2, undefined, undefined> {

}

export class Action3<T1, T2, T3> extends Action<T1, T2, T3, undefined> {

}

export class Action4<T1, T2, T3, T4> extends Action<T1, T2, T3, T4> {

}